Many present-day machine learning systems suffer from significant computational challenges due to massive amounts of data. Modern machine learning systems often process millions of cheaply-acquired samples, generating a significant computational burden. For these systems, making inferences as efficiently as possible based on very large amounts of data is an ongoing challenge. For example, machine learning systems seek to assess how much data needs to be processed and in what order before making a decision that is correct within a workable error tolerance. Finite computing resources are typically available and the machine learning system needs to allocate the resources appropriately.
Often machine learning systems are concerned with the efficient allocation of finite resources where there is uncertainty about options. For example, finding out which of many possible advertisements to show to a customer allocates a resource (computing resource, screen space) to one possible option (a single advertisement). Showing an advertisement and observing the user response (click/no click) reveals partial information about the advertisement impression that can be used to perform better allocations of the resources in future.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known machine learning systems.